<?php

namespace App\Models\Passengers\Repositories\Interfaces;

use App\Models\Passengers\Passenger;
use Illuminate\Support\Collection;

interface PassengerRepositoryInterface
{
    public function listAll(array $condition, ?int $limit = 0): Collection;

    public function findOneByPassengerIdAndUserId(string $passenger_id, string $user_id);

    public function findOneByIdentityCodeAndUserId(string $identity_code, string $user_id);

    public function addPassenger(array $param): Passenger;

    public function updatePassenger(Passenger $passenger, array $param): bool;

    public function destroy(Passenger $passenger): bool;

    public function updateVerifyState(Passenger $passenger, int $verify_state): bool;
}